<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>DaoBeauty</title>
</head>
<body bgcolor="white">
The DaoBeauty API is a toolbox for generating proxies that implement
<a href="http://en.wikipedia.org/wiki/Data_Access_Object">DAO</a> functionality for <a href="http://www.hibernate.org">Hibernate</a> based persistence layers.
In some way it's an automatic DAO generator, where the proxy implements all functionality
needed by some DAO interface or base class.<br/>
DaoBeauty uses some conventions to determine, how to implement some DAO interface method. The most conventions
are based on the ones used by <a href="http://www.grails.org/GORM+-+Querying">Grails and GORM</a>, like the findAll methods.<br/>
<p/>
<h2>How it works</h2>
<p/>
DaoBeauty analyses the name, the parameters and the return type of the methods declared in the DAO interface
in combination with a given <code>SessionFactory</code> and a domain class to determine, which of several strategies 
has to be used to implement the functionality of the interface method. So the functions that can be implemented 
by DaoBeauty depend on the available strategies,
which all base on the interface <code>{@link daobeauty.interceptor.invoke.InvokeStrategy}</code>.
<p/>
<h3>Available implementation strategies</h3>
<p/>
All available implementation strategies are listed in the package {@link daobeauty.interceptor.invoke}.
<p/>
<h3>Proxy Factories</h3>
<p/>
DaoBeauty supports several major proxy generation APIs for generating proxies through abstracting them with the
interface {@link daobeauty.proxy.ProxyProvider}. The main method interceptor 
{@link daobauty.interceptor.MethodInterceptor} of DaaoBeauty can be used with the different proxy APIs through
provided adapters. Most common ones are Reflection, CGLib, Javassist and Spring.
<p/>
<h3>Examples and Tests</h3>
<p/>
The package {@link daobeauty.test} contains some examples and junit tests.
<p/>
<h2>Package Specification</h2>

(none)

<h2>Related Documentation </h2>

The following classes are used by the java.text classes.
<ul>
   <li>{@link java.lang.Character} (for getType)
   <li>{@link java.util.Locale}
   <li>{@link java.util.Calendar}
   <li>{@link java.util.GregorianCalendar}
   <li>{@link java.util.Date}
   <li>{@link java.util.ResourceBundle}
   <li>{@link java.util.ListResourceBundle}
   <li>{@link java.util.PropertyResourceBundle}
   <li>{@link java.util.TimeZone}
   <li>{@link java.util.SimpleTimeZone}
</ul>
<!-- Put @see and @since tags down here. -->
@see daobeauty.interceptor.invoke
@see daobeauty.interceptor.returntype
@see daobeauty.proxy
</body>
</html>
